我正在尝试使用MS Build为两个Web应用程序进行Web部署发布,以供内部使用和测试.我为每个要发布的环境设置了不同的解决方案配置.IE DevA,DevB.我已经更新了所有web.configs来进行正确的转换.作为一个注释,当我通过Visual Studio进行右键单击发布时,转换工作,所以我已经将这些作为问题排除.我正在运行的当前bat文件使用此命令来完成工作:
"C:\ Program Files(x86)\ MSBuild\12.0\Bin\msbuild"project.csproj/t:Clean; Rebuild; Publish/p:DeployOnBuild = true; PublishProfile = DevB1_API; AllowUntrustedCertificate = True; username = username; password =密码
当我运行此命令时,发布工作正常.但是,web.config没有被转换.我错过了一个msbuild参数来强制这种情况发生吗?任何帮助,将不胜感激!谢谢.
这是一个学术问题. 可以说它背后有一个XY问题,我可以稍后单独发布.但我是真正的学术问题特别感兴趣,在这里.
我经常发现我有一组接口,它们都有共同的属性.我想要定义一个基本接口以使其共同化,部分原因是缺乏重复,部分原因是我可以在不知道确切类型的情况下传递对象并使用常用方法.
也许我有IFooRepository
,IBarRepository
等等,我可以宣布IRepository<TEntity>
.
或者我有IHappyBot
,ISadBot
,IConfusedBot
,都具有IBot
共同点.
值得注意的是,没有一个类可以直接实现这些基本接口 - 你永远不会有一些只能 实现的东西IBot
.
如果我们在讨论类的层次结构而不是接口,那么我会说"啊......基本的东西是抽象类".
有什么类似的东西我可以用接口来记录IBot
不会直接实现的期望.
我感兴趣的一个方面是做一些你以后可以通过反射检测的东西,这样当我测试我的DI设置时,我可以说"啊,这个界面不应该是可绑定的,因为它是"抽象的" .
我有指向sharepoint 2013 Office 365的Web服务.我使用客户端对象模型.我正在尝试更新存储4个附件的xml文件.当我在xml文件中有大量二进制数据时执行此操作时,出现以下错误:
信息
请求消息太大了.服务器不允许大于2097152字节的消息.
我意识到我可能不得不分离xml文件中的附件,但目前我的infopath表单将它们存储在那里.有没有办法可以增加请求长度或者可以节省大量的东西.我真的只是修改一个节点,除非我更新xml,否则它将无法工作.谢谢 .代码如下.
我的代码:
ListItem docReq = GetDocRequestLight(docRequestID, businessID);
string fPath = (string)docReq["FileRef"];
using (FileInformation fInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(ctx, fPath))
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fInfo.Stream);
XmlNamespaceManager xmlNameSpaceMgr = new XmlNamespaceManager(xmlDoc.NameTable);
xmlNameSpaceMgr.AddNamespace("my", DocReqXmlNameSpace);
// Get Parent Node
XmlNode node = xmlDoc.SelectSingleNode(GetXPathFromItemKey(velmaKey), xmlNameSpaceMgr);
DateTime outDate;
bool outBool;
if (DateTime.TryParse(newValue, out outDate))
node.InnerText = outDate.ToString("yyyy-MM-dd");
if (Boolean.TryParse(newValue, out outBool))
node.InnerText = newValue;
// Update Statuses
XmlNode statusIDNode = xmlDoc.SelectSingleNode(DocReqStatusIDFieldXPath, xmlNameSpaceMgr);
statusIDNode.InnerText = updatedStatus.ID.ToString();
XmlNode statusNode = xmlDoc.SelectSingleNode(DocReqStatusFieldXPath, …
Run Code Online (Sandbox Code Playgroud) 请考虑以下示例:
class YieldTest
{
static void Main(string[] args)
{
var res = Create(new string[] { "1 12 123", "1234", "12345" });
}
static IEnumerable<int> Create(IEnumerable<string> strings)
{
foreach(string s in strings)
{
yield return s.Length;
if(s.Contains(' '))
{
string[] tokens = s.Split(' ');
foreach(string t in tokens)
{
yield return t.Length;
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Create
回复{8,1,2,3,4,5} 的召唤.
让我困惑的是执行yield return语句后的代码.(他们为什么要命名yield return
而不只是yield
?)文档告诉我们
在迭代器方法中达到yield return语句时,将返回表达式,并保留代码中的当前位置.
那是什么意思?返回何处发生?什么是迭代器方法?
是否有任何示例如何使用.net中的服务帐户访问Google服务API?
private const string SERVICE_ACCOUNT_EMAIL = "xxxxxxxxxxx@developer.gserviceaccount.com";
private const string SERVICE_ACCOUNT_PKCS12_FILE_PATH = @"\path\test-privatekey.p12";
static DriveService BuildService()
{
X509Certificate2 certificate = new X509Certificate2(SERVICE_ACCOUNT_PKCS12_FILE_PATH, "notasecret",
X509KeyStorageFlags.Exportable);
var provider = new AssertionFlowClient(GoogleAuthenticationServer.Description, certificate)
{
ServiceAccountId = SERVICE_ACCOUNT_EMAIL,
Scope = DriveService.Scopes.Drive.GetStringValue(),
};
var auth = new OAuth2Authenticator<AssertionFlowClient>(provider, AssertionFlowClient.GetState);
return new DriveService((new BaseClientService.Initializer()
{
Authenticator = auth
});
}
Run Code Online (Sandbox Code Playgroud)
这在返回OAuth连接时不成功.如何才能做到这一点?
我正在尝试在我的应用程序中设置系统环境变量,但得到一个SecurityException
.我测试了我在谷歌找到的所有内容 - 没有成功.这是我的代码(注意,我是我的电脑的管理员,并以管理员身份运行VS2012):
尝试1
new EnvironmentPermission(EnvironmentPermissionAccess.Write, "TEST1").Demand();
Environment.SetEnvironmentVariable("TEST1", "MyTest", EnvironmentVariableTarget.Machine);
Run Code Online (Sandbox Code Playgroud)
尝试2
new EnvironmentPermission(EnvironmentPermissionAccess.Write, "TEST1").Demand();
using (var envKey = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Environment", true))
{
Contract.Assert(envKey != null, @"HKLM\System\CurrentControlSet\Control\Session Manager\Environment is missing!");
envKey.SetValue("TEST1", "TestValue");
}
Run Code Online (Sandbox Code Playgroud)
你有什么其他的建议?
上周我在 R2 开发服务器上安装了 4.5.2 框架,从那以后一直出现此错误。这些文件不包含对 VisualStudio.Shell 的引用。有任何想法吗?
解析器错误说明:解析服务此请求所需的资源时发生错误。请查看以下特定解析错误详细信息并适当修改您的源文件。
分析器错误消息:Reference.svcmap:无法加载文件或程序集“Microsoft.VisualStudio.Shell,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。该系统找不到指定的文件。
来源错误:
[没有相关源行]
源文件:/App_WebReferences/ClientApplicationServer/ 行:1
程序集加载跟踪:以下信息有助于确定程序集“Microsoft.VisualStudio.Shell,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”无法加载的原因。
我有一个通过串行端口连接到设备的实用程序。为了测试该应用程序,我正在为设备编写一个模拟器。
这两个应用程序都打算在同一Windows 7计算机上运行。
我正在用C#编写模拟器。我使用com0com创建了一对虚拟端口(在本例中为CNCA8和CNCB8,因为我已经有几个现有的端口对)。
我正在尝试在模拟器中打开CNCB8(应用程序尚未运行),但出现异常:
System.dll中发生了'System.ArgumentException'类型的未处理异常
附加信息:给定的端口名不能以COM / com开头或不能解析为有效的串行端口。
样例代码:
SerialPort port = new SerialPort("CNCB8", 9600, Parity.None, 8, StopBits.One);
port.Handshake = Handshake.None;
port.Open();
Run Code Online (Sandbox Code Playgroud)
此问题无关紧要,因为它是未使用的虚拟端口(如果重要,IsOpen将返回false): C#SerialPort#Open()方法由于端口名称而抛出ArgumentException?
编辑:我还确保端口名称出现在SerialPort.GetPortNames()中,并且它出现在Windows的“ com0com串行端口仿真器”下的设备管理器中。我还尝试使用CNCA代替B(具有几个现有的虚拟端口),尝试删除“ HandShake”行,并尝试将波特率更改为115200,以防万一(尽管最终我在那里需要9600)。
我想从像素中获取ARGB值并转换为HSV,然后使用新值设置像素.
我不完全明白该怎么做.谁能帮我?
我正在尝试将 TestRail 与 Jenkins 集成,我想从 test rail 运行一些测试用例,它在 jenkins 中调用测试用例,然后将结果写回 TestRail 本身,或类似的东西。
我知道有一个 API,但到目前为止我无法弄清楚如何继续使用这个 API。
任何建议都会有很大帮助。
c# ×7
.net ×2
.net-4.5.2 ×1
android ×1
asp.net ×1
com0com ×1
csom ×1
google-api ×1
google-oauth ×1
hsv ×1
interface ×1
java ×1
jenkins ×1
msbuild ×1
rgb ×1
serial-port ×1
sharepoint ×1
testing ×1
testrail ×1
windows ×1
yield-return ×1