我在Visual Studio 2008中有一个多项目解决方案.我刚刚在解决方案中添加了一个名为Release-VersionIncrement的新配置,指定"use release"配置作为基线.所有项目文件都使用该配置进行了更新.但是,当我尝试使用此配置编译特定项目时,我收到以下错误:
错误5未为此项目设置OutputPath属性.请检查以确保您已指定有效的配置/平台组合.Configuration ='Release-VersionIncrement'Platform ='AnyCPU'C:\ WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets 539 9 DataConversion
这里发生了什么事?该项目在Release或Debug配置中编译良好.
有什么不同的区别Build Configuration settings如任何CPU,混合平台,WIN32等在Visual Studio.
在c#中有一种方法可以使用像"#if DEBUG"这样的自定义配置
我需要一个"#if OFFLINE",因为我的Build-Config名称是"离线"(仅用于进一步的调试目的)...
谢谢!
这是我的csproj文件的片段:
<ProjectReference Include="..\program_data\program_data.csproj" Condition="'$(Configuration)'=='Debug'">
<Project>{4F9034E0-B8E3-448E-8794-CF9B9A5E7D46}</Project>
<Name>program_data</Name>
</ProjectReference>
Run Code Online (Sandbox Code Playgroud)
我想要做的是包括program_data.dll用于多个生成配置,例如发布和调试.
我尝试过以下操作
Condition="'$(Configuration)'=='Debug' || '$(Configuration)'=='Release'"
Run Code Online (Sandbox Code Playgroud)
但Visual Studio对此嗤之以鼻.
有没有办法可以做到这一点,或者我必须<ProjectReference>为每个构建配置分别?
在使用单元测试创建新项目时,Xcode将构建配置设置为Test for Test方案(与Run方案相同).
我应该区分Run(Command-R)和Test(Command-U)方案吗?
即,我应该创建一个名为Test的新构建配置,向它添加预处理器宏TEST = 1,并将其用作测试方案的构建配置吗?或者,我应该将Run&Test作为Debug进行保存吗?
我来自Ruby/Rails背景,您通常拥有测试,开发和生产环境.在我看来,Debug就像开发一样,Release就像生产一样,但是我们错过了一个测试,这就是我认为添加Test可能有意义的原因.
评论?意见?建议?
我特意问这个,因为我想为Test编译一些东西:
#ifdef TEST
// Do something when I test.
#endif
Run Code Online (Sandbox Code Playgroud)
如果我也为Debug编译它,我认为这不重要.所以,我真的可以做到:
#ifdef DEBUG
// Do something when I run or test.
#endif
Run Code Online (Sandbox Code Playgroud)
但是,我真的只打算在现在进行测试.所以,这就是为什么我认为我应该区分调试和测试,但我想知道为什么Xcode默认不为你做那个?Apple认为你不应该区分它们吗?
我正在尝试编辑我的项目文件,以便让我拥有一个可以同时构建多个构建配置的项目.我使用批处理方法并使用MSBuild任务(见下文)完成了这项工作.
如果我运行脚本,我会收到此错误:
错误103未为项目"ThisMSBuildProjectFile.csproj"设置OutputPath属性.请检查以确保您为此项目指定了Configuration和Platform的有效组合.Configuration ='Debug'Blatform ='AnyCPU'.
如果我从MSBuild任务添加或省略OutputPath,我会得到这个.如果使用VS2010调试器逐步执行脚本并调用MSBuild任务 - 调试器再次进入文件然后进入OutputPath,那么afaik,它应该选择该值,不是吗?
任何帮助都将非常感激 - 它让我发疯.谢谢,保罗.
这个MSBuildProjectFile.csproj(剩余的东西取出):
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<!-- Only Import normal targets if not building multiple projects -->
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" Condition="'$(Configuration)|$(Platform)' != 'AllBuild|AnyCPU' "/>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == '' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>C:\Folder\Etc\Output\$(Configuration)\</OutputPath>
<OutDir>C:\Folder\Etc\Output\$(Configuration)\</OutDir>
<BaseOutputPath>C:\Folder\Etc\Output\$(Configuration)\</BaseOutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<!-- Common -->
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<Platform>AnyCPU</Platform>
<!-- Repeated properties from above here (including, of course, OutputPath) -->
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' …Run Code Online (Sandbox Code Playgroud) 我使用的是 dotnet core 2+,但问题可能更通用。
我的 CI 管道目前看起来像这样:
dotnet build -c Releasedotnet testdotnet public -c Release --no-build对于测试步骤,它使用默认Debug配置,因此它也必须使用Debugconfig.js构建应用程序。
因此,我想知道,使用Debug而不是运行测试是否有任何优势,Release或者我应该简单地添加dotnet test -c Release?
我正在尝试用介子配置一个项目。具体来说,我正在尝试设置一些选项。
meson config告诉我,除其他外:
Core options:
Option Current Value Possible Values Description
------ ------------- --------------- -----------
buildtype debug [plain, debug, debugoptimized, release, minsize, custom] Build type to use
Base options:
Option Current Value Possible Values Description
------ ------------- --------------- -----------
b_lto false [true, false] Use link time optimization
Run Code Online (Sandbox Code Playgroud)
(当然,其他选项已从此打印输出中删除。)
所以,我写:
meson build . --buildtype=release
Run Code Online (Sandbox Code Playgroud)
在我的构建目录中,一切顺利 - 没有警告或错误(我仔细检查了选项值是否已更改)。然后我写:
meson build . --b_lto=true
Run Code Online (Sandbox Code Playgroud)
但这让我感到:
meson: error: unrecognized arguments: --b_lto=true
Run Code Online (Sandbox Code Playgroud)
我也尝试过-b_lto=true、、、、。而所有这些都没有价值。没有运气。--b_lto trueb_lto=trueb_lto truetrue
那么我该如何设置这些“基本选项”呢?
command-line command-line-arguments buildconfiguration meson-build
我想要的是一种具有依赖于构建配置的设置的方法.举一个具体的例子,我的android应用程序连接到Web服务.在开发中,我希望从可配置的值中提取服务URL.在Test中,我希望获得不同的值.在生产中,还有另一个值.
所以,在代码中我有这样的东西:
public class HttpRequestHelper
{
private static String GetServiceUrl(ServiceAction action)
{
return serviceUrl + action.toString();
}
}
Run Code Online (Sandbox Code Playgroud)
默认情况下(调试/运行eclipse时),我希望该URL为http:// localhost:1234
在测试中我想要https://test.mydomain.com
在制作中我想要https://mydomain.com
我是eclipse和ant的新手,自从我使用java以来已经很久了.我该如何设置呢?build.xml应该是什么样的?据我所知,当我想构建test/prod版本时,我需要使用命令行.没关系.但我不知道如何使这个serviceUrl自动设置依赖于构建.我甚至不确定放置此信息的最佳位置(资源,属性文件?).我真的想避免设置,构建,设置,构建等.
我有一个Xcode 7.3工作区,有三个项目,App,FrameworkA和FrameworkB.每个项目都有一个目标.这是iOS,因此框架目标是Cocoa Touch Frameworks,这意味着包含动态链接共享库的框架.
应用程序依赖于依赖于框架B的框架A.这些依赖关系正在工作,只要A正确链接到B的构建产品,并且应用程序正确链接并嵌入框架A和B(因为您不能有一个框架嵌入另一个框架,似乎应用程序包需要链接和嵌入直接和传递依赖.)
但这是我的问题.框架A和B具有通常的构建配置,即调试和发布.App有一个额外的构建配置LocalRelease,它由Run构建操作触发,用于构建优化的构建(如Release),但代码用开发者身份(如Debug)签名.
当我尝试用这个LocalRelease构建配置构建App时,这打破了构建,因为它打破了框架A和B的依赖关系.我相信这是因为这些框架没有LocalRelease构建配置,所以Xcode从不将它们的构建产品放入LocalRelease-iphoneos文件夹,与App一样.
所以我的狭隘问题是,如何配置构建设置,以便具有非标准构建配置名称的项目(如LocalRelease)可以依赖于仅使用标准构建配置名称的其他项目?我希望有一个简单的方法可以做到这一点,不需要添加脚本或xcconfig文件,但如果有必要,我很乐意理解为什么.
我的更广泛的问题是,引入额外的构建配置通常是一个坏主意,因为它们不允许共享工作区中项目之间的依赖项的平滑交互?我被引导定义第三个配置,因为我想要一个优化的本地构建,我不想定义一个新的方案,我希望构建类型的选择由各种构建操作(运行,配置文件,发布)表示单一计划.
但也许这是错误的做法.只要构建配置名称驱动构建产品目录路径,并且依赖项目需要在共享目录中找到彼此的构建产品,似乎向项目引入非标准构建配置名称将破坏与之的互操作依赖于其他项目.
msbuild ×3
c# ×2
debugging ×2
xcode ×2
.net-core ×1
android ×1
ant ×1
buildconfig ×1
cocoa-touch ×1
command-line ×1
conditional ×1
csproj ×1
include ×1
java ×1
meson-build ×1
msbuild-task ×1
unit-testing ×1
xcode7 ×1