我在Visual Studio中有一个包含多个项目的解决方案.我想在每次构建的最初阶段运行一个命令 - 无论涉及哪个项目以及它们是否是最新的.
基本上我需要类似于解决方案范围的预构建事件,但不幸的是VS似乎不支持这些.有没有人知道实现我需要的另一种方式?
我想$(TargetDir)
在构建项目之前删除Visual Studio中的文件.
你如何格式化命令行来解决这个问题我到了下面?
我的解决方案有一堆项目,其中一个是Windows服务; 我有一个预建步骤来停止服务和一个postbuild步骤重新启动它(这样,当VS正在构建/覆盖它时,windows service exe不会被锁定).
on pre-build:
net stop myservice
on post-build:
net start myservice
Run Code Online (Sandbox Code Playgroud)
如果在我启动构建时服务未运行,则net stop命令将失败并阻止构建继续进行.
即使预构建步骤失败,我还能做什么来强制构建?
我在预建活动中有以下内容:
copy /y $(ProjectDir)ThirdPartyAssemblies\ $(TargetDir)
Run Code Online (Sandbox Code Playgroud)
这导致以下错误:
命令"copy/y C:\ Users\myusername\Documents\Visual Studio 2010\Projects\mysolution\myproject\ThirdPartyAssemblies*C:\ Users\myusername\Documents\Visual Studio 2010\Projects\mysolution\myproject\bin\Debug\"退出代码1.
我也在post build事件中尝试过它并得到同样的错误.然而,当我运行命令时,它会在控制台窗口中产生(错误中的那个)它可以正常工作.我究竟做错了什么?
在我的项目中,我正在运行一个外部工具来更新一些二进制文件.这些文件作为"内容"包含在项目中.
此工具设置为在C#项目属性中的"预构建事件"期间运行.不幸的是,只有在项目过期时才会执行此事件,这不是我需要的.
我通过在我的项目中总是使用"rebuild"而不是"build"来解决这个问题,但这很乏味且很慢.
无论项目是否是最新的,我都需要始终执行此工具.实际上,甚至在MSBuild确定项目是否是最新的之前,因为该工具修改了项目中包含的一些文件,因此影响了最新的检查结果.
有没有正确的方法呢?
我一直在尝试使用构建事件来启动和停止在我的项目中构建的Windows服务.然而,对于前置和后置构建失败,错误级别为255.我已经尝试使用预构建来捕获它而没有运气.
预建
if "$(ConfigurationName)" == "Debug"
(
net stop myService
if errorlevel 2
if errorlevel 255
:exit
:exit
)
Run Code Online (Sandbox Code Playgroud)
生成后
if "$(ConfigurationName)" == "Release"
(
copy $(TargetDir) C:\Media\Bin\$(ProjectName)
if errorlevel 1 BuildEventFailed
:BuildEventFailed
mkdir C:\Media\Bin\$(ProjectName)
copy $(TargetDir) C:\Media\Bin\$(ProjectName)
)
else if "$(ConfigurationName)" == "Debug"
(
net start myService
)
Run Code Online (Sandbox Code Playgroud) 我正忙着自动化我们的构建以包含svn修订版号.我们正在使用Delphi 2010.我添加了一个预构建事件,调用批处理文件,该文件将svn修订号(从.svn目录中的条目文件中读取)和指定的版本号注入到编译的aVersionInfo.rc中.我的项目.预构建事件如下所示:
call SetVersionInfo.bat 6 5 4
Run Code Online (Sandbox Code Playgroud)
...和批处理文件(希望有人发现这个有用)...
@ECHO OFF
SETLOCAL
setLocal EnableDelayedExpansion
SET _myVar=0
FOR /F %%G in (.svn\entries.) DO (
IF !_myVar! LSS 3 SET /A _myVar+=1 & SET _svn_dir_rev=%%G
)
ECHO 1 VERSIONINFO > aVersionInfo.rc
ECHO. FILEVERSION %1,%2,%3,%_svn_dir_rev% >> aVersionInfo.rc
ECHO. PRODUCTVERSION 1 >> aVersionInfo.rc
ECHO. FILEOS VOS__WINDOWS32 >> aVersionInfo.rc
ECHO. FILETYPE VFT_APP >> aVersionInfo.rc
ECHO. BEGIN >> aVersionInfo.rc
ECHO. BLOCK "StringFileInfo" >> aVersionInfo.rc
ECHO. BEGIN >> aVersionInfo.rc
ECHO. BLOCK "080904b0" >> aVersionInfo.rc
ECHO. BEGIN >> aVersionInfo.rc …
Run Code Online (Sandbox Code Playgroud) 我正在复制.exe文件,在预构建事件中单独复制到我的主项目文件夹,但我需要在构建我的主项目之前构建该项目,所以我想在我的主项目的prebuild事件上构建该项目.
我有一个用于C++的跨平台单元测试框架.为了在XCode 6.1中构建和运行测试,我需要运行python脚本作为预构建脚本的一部分.
因为我对多个项目使用相同的单元测试框架,所以我认为在我的环境变量中使用环境变量~/.bash_profile
指向python脚本所需的资源会很棒.但似乎XCode 6.1 bash_profile
在构建过程中运行脚本之前没有加载.有没有替代品使用bash_profile
?也许我可以将我的环境变量添加到XCode环境变量列表中?但这似乎随着OSX的每次更新而改变.我似乎无法弄清楚我可以在哪里为XCode 6.1添加环境变量.
我有这个项目结构: ProjectFolder/IosFolder,AndroidFolder,CommonFolder 现在Android应用程序使用它的资产文件夹中的文件.但我们决定为相同的文件制作Common文件夹.
你可以帮我制作函数女巫会将文件从Common文件夹复制(这个文件夹在我的项目中,所以在Android Studio中我没有看到它)到android 资源文件夹之前构建应用程序吗?
Common文件夹中将包含一些.json文件和字体文件.
据我所知,我需要在我的build.gradle文件中编写这样的函数:
task copyFiles(type: Copy)
copyFiles {
description = 'Copy files'
from 'Common/'
into 'Android/{projectName}/app/src/main/assets'
}
Run Code Online (Sandbox Code Playgroud)
这是我的档案:
apply plugin: 'com.android.application'
repositories {
mavenCentral()
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "amc.amc_mobile_promo2"
minSdkVersion 17
targetSdkVersion 23
versionCode 1
versionName "1.0"
//For Flurry
multiDexEnabled = true
}
//For Flurry
/*compileOptions {
//noinspection GroovyAssignabilityCheck
sourceCompatibility JavaVersion.VERSION_1_7
//noinspection GroovyAssignabilityCheck
targetCompatibility JavaVersion.VERSION_1_7
}*/
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
} …
Run Code Online (Sandbox Code Playgroud) pre-build-event ×10
android ×1
build.gradle ×1
c++ ×1
command-line ×1
delphi ×1
delphi-2010 ×1
gradle ×1
msbuild ×1
osx-yosemite ×1
prebuild ×1
xcode6 ×1