在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