在VS 2008中,有沒有辦法在C#項目中設置中間目錄(.obj文件去,而不是最終目標)?在C#項目中設置中間目錄
回答
我不這麼認爲。但是,您可以將您的可執行文件,dll等任何文件複製到生成後事件中的另一個文件夾中。 (項目屬性中的「生成事件」選項卡)
您需要重寫BaseIntermediateOutputPath msbuild var,關於它的更多內容here。
這確實有效,但我一直在尋找一種方法在每個項目中進行設置,以便從IDE構建起來不會污染源文件夾。但是,在項目中設置BaseIntermediateOutputPath會觸發安全警告。唉,這似乎不可能。嘆... – 2009-09-29 15:02:52
安全警告在那裏通知您發生了一些與衆不同的事情,您可以靜音警告,直到您更改其他事情時纔會再次看到它。 – 2009-09-29 15:44:43
關於定製中間輸出位置沒有任何不尋常的事情。 Visual Studio高興地接受C++項目自定義中間文件位置(通過IntDir屬性)而沒有安全警告對話框,但它確實在C#項目中完成相同的操作時會引發發脾氣。 – 2010-06-16 14:25:16
我找到了一個使用Visual Studio Express 2013的解決方案;我忘記了哪個版本的VS引入了MSBuild,並且我不能肯定地說這將適用於任何其他版本。但是這裏有:
C:\Windows\Microsoft.NET\Framework
是對應於.NET版本的子目錄; VSX2013在我的系統上感興趣的文件夾是v4.0.30319
。 (這是MSBuild使用的.NET版本,而不是我定位的版本。)在此文件夾中有.targets
文件,它們是MSBuild規則的集合。
Microsoft.CSharp.targets
附近的一些規則將導入更多的規則文件。這些導入語句中的第三個從構建變量CustomBeforeMicrosoftCSharpTargets
指定的文件導入。您可能能夠通過閱讀規則弄清楚這個名字,但它更容易添加
echo $(CustomBeforeMicrosoftCSharpTargets)
構建的自定義生成步驟,並期待在輸出。在我的情況下,全路徑是
C:\Program Files (x86)\MSBuild\v12.0\Custom.Before.Microsoft.CSharp.targets
注:在我的情況下,已經有一個文件夾C:\Program Files (x86)\MSBuild\12.0
但不v12.0
。
所以(如管理員)我創建的文件夾,並放置在Custom.Before.Microsoft.CSharp.targets
文件看起來像這樣:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BaseIntermediateOutputPath>$(SolutionDir)\Build\$(MSBuildProjectName)</BaseIntermediateOutputPath>
</PropertyGroup>
</Project>
注:$(ProjectName)
不起作用,使用$(MSBuildProjectName)
。
當我建成,OBJ文件是一個build目錄下放置的解決方案下,不根據該項目,在一個子目錄與典型的命名約定:Debug
或Release
或x86\Debug
或x64\Release
。
這並沒有完全按照要求工作:我真的想把它們放在%TEMP%
中,但變量沒有擴展,所以我最終在名爲%TEMP%
的項目下創建了一個構建文件夾。將擴展路徑放在規則中工作得很好,但其他子文件夾%APPDATA%
由於權限問題而失敗。
我認爲這可以用來配置任何這些變量;閱讀默認的.TARGETS
文件是一件苦差事,但其中有一些有用的評論。
進一步說明:上述方法適用於VS CE 2017. CustomBeforeMicrosoftCSharpTargets具有值C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ MSBuild \ v15.0',並且I必須創建'v15.0'文件夾;不需要對XML進行任何更改。 – 2017-06-24 00:31:51
- 1. 設置項目根目錄?
- 2. 在C中設置當前目錄#
- 3. 在turbo中設置輸出目錄C++
- 4. 在vimrc中設置目錄
- 5. 在Linux中設置目錄
- 6. 在目錄中設置Cookie
- 7. 在VS C++項目中創建目錄
- 8. 在linux中設置目標目錄
- 9. 在WAMP中設置項目
- 10. 在sbt的項目中設置PlayProject的基本目錄/ Build.scala
- 11. 如何使用wxWidgets在UI中設置項目工作目錄?
- 12. 如何在Visual Studio 2010項目中設置工作目錄?
- 13. 設置Xcode項目的構建目錄
- 14. 根據URL設置nodejs項目目錄
- 15. php:設置項目的根目錄?
- 16. 如何在C#項目中設置Images目錄的相對路徑?
- 17. Eclipse Indigo C++項目設置
- 18. C#團隊項目設置
- 19. 在XCode4中在OpenCV中設置項目
- 20. 如何在項目中的Xcode 3.2.5中打開「項目設置」?
- 21. 在MSVC中配置Qt項目設置
- 22. Gitlab中的項目設置
- 23. VC++中與項目無關的目錄設置
- 24. Visual Studio項目設置中的多個相對父目錄
- 25. 搖籃多項目的中間目錄不子項目
- 26. 配置CruiseControl.net項目目錄
- 27. 如何設置目標c中的標籤欄項目badgeValue?
- 28. Xcode:項目設置與目標設置
- 29. 在Eclipse中設置執行目錄?
- 30. 在Wix中設置ComponentGroupRef的目錄?
+1爲好問題。我試圖做同樣的事情出於同樣的原因(不污染源編譯器輸出源目錄)和失敗(沒有安全警告對話框 - 但這是不能接受的)。 – 2010-06-16 14:32:33
有人知道這種情況是否在Visual Studio 2010/.NET4中發生了變化...? – 2010-06-16 14:38:13