我有一个MSBuild命令行,可以构建一个完整的解决方案.它看起来像这样:
msbuild SomeSolution.sln/p:配置:CustomDebug; Platform = OurPlatform/nodeReuse:false/maxcpucount:4/t:Build
我知道对于C++解决方案,可以使用以下语法来定位特定项目:
msbuild SomeSolution.sln/p:配置:CustomDebug; Platform = OurPlatform/nodeReuse:false/maxcpucount:4 / t:Folder\SomeCppProject; Build
我正在尝试在解决方案中为.NET项目实现相同的功能.这不起作用:
msbuild SomeSolution.sln/p:配置:CustomDebug; Platform = OurPlatform/nodeReuse:false/maxcpucount:4 / t:SomeDotNetProject; Build
有没有人知道如何在.NET项目的命令行上使用MSBuild在解决方案中定位特定项目?我知道我可以创建一个自定义的MSBuild项目来实现我的目标,但我需要与Visual Studio共享解决方案和项目.
谢谢!
-Sean
C#中值得信赖的旧预处理程序指令在我编写时看起来效果很好:
#if DEBUG
...
(Some code)
...
#endif
Run Code Online (Sandbox Code Playgroud)
但是,条件块中包含的属性似乎继续得到处理,我得到错误指示.例如,[AssemblyVersion(...)]在条件块内围绕一个似乎没有任何影响.
我可以详细说明我们为什么要有条件地忽略[AssemblyVersion(..)],但它无关紧要.有任何想法吗?
假设我有一个指定的初始化程序,它执行一些初始化:
- (id)initWithBlah:(NSString *)arg1 otherBlah:(NSArray *)arg2
{
if (self = [super init])
{
...
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
我有另一个需要调用它的初始化程序,但然后执行一些其他设置任务:
- (id)initWithSomeOtherBlah:(void *)creativeArg
{
// Is this right? It seems to compile and run as expected, but feels wrong
self = [self initWithBlah:nil otherBlah:nil];
if (self)
{
[self someProcessingForThisInitDependentOnSelfInit:creativeArg];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
由于测试以确保返回值是正确的,在这种情况下应该"自我"使用吗?我想知道这是否是一个有效的事件组合.我们有一种情况,我们有一个初始化程序,需要在运行指定的初始化程序后执行一些额外的设置.
我想知道是否正确的方法是在指定的初始化程序中推送这个额外的处理.
如果需要进一步澄清,请告诉我.我试图保持这个简单.:)
谢谢!